ENABLED=DISABLED, XIP_MODE=MMIO_MODE, BLOCK=BUS_ERROR
Control
XIP_MODE | Mode of operation. Note: this field should only be changed when the IP is disabled or when STATUS.BUSY is ‘0’ and SW should not be executing from the XIP interface or MMIO interface. 0 (MMIO_MODE): ‘0’: MMIO mode. Individual MMIO accesses to TX and RX FIFOs are used to generate a sequence of SPI transfers. This mode of operation allows for large flexibility in terms of the SPI transfers that can be generated. 1 (XIP_MODE): 1’: XIP mode. eXecute-In-Place mode: incoming read and write transfers over the AHB-Lite bus infrastructure are automatically translated in SPI transfers to read data from and write data to a device. This mode of operation allow for efficient device read and write operations. This mode is only supported in SPI_MODE. |
CLOCK_IF_RX_SEL | Specifies device interface receiver clock ‘clk_if_rx’ source. MISO data is captured on the rising edge of ‘clk_if_rx’. ‘0’: ‘spi_clk_out’ (internal clock) ‘1’: !‘spi_clk_out’ (internal clock) ‘2’: ‘spi_clk_in’ (feedback clock) ‘3’: !‘spi_clk_in’ (feedback clock) Note: the device interface transmitter clock ‘clk_if_tx’ is fixed and is ‘spi_clk_out’ MOSI data is driven on the falling edge of ‘clk_if_tx’. |
DESELECT_DELAY | Specifies the minimum duration of SPI deselection (‘spi_select_out[]’ is high/‘1’) in between SPI transfers: ‘0’: 1 interface clock cycle. ‘1’: 2 interface clock cycles. ‘2’: 3 interface clock cycles. ‘3’: 4 interface clock cycles. ‘4’: 5 interface clock cycles. ‘5’: 6 interface clock cycles. ‘6’: 7 interface clock cycles. ‘7’: 8 interface clock cycles. During SPI deselection, ‘spi_select_out[]’ are ‘1’/inactive, ‘spi_data_out[]’ are ‘1’ and ‘spi_clk_out’ is ‘0’/inactive. |
BLOCK | Specifies what happens for MMIO interface read accesses to an empty RX data FIFO or to a full TX format/data FIFO. Note: the FIFOs can only be accessed in MMIO_MODE. This field is not used for test controller accesses. 0 (BUS_ERROR): 0’: Generate an AHB-Lite bus error. This option is useful when SW decides to use polling on STATUS.TR_BUSY to determine if a interface transfer is no longer busy (transfer is completed). This option adds SW complexity, but limits the number of AHB-Lite wait states (and limits ISR latency). 1 (WAIT_STATES): 1’: Introduce wait states. This setting potentially locks up the AHB-Lite infrastructure and may increase the CPU interrupt latency.This option is useful when SW performs TX/RX data FIFO accesses immediately after a command is setup using the TX format FIFO. This option has low SW complexity, but may result in a significant number of AHB-Lite wait states (and may increase ISR latency). |
ENABLED | IP enable: ‘0’: Disabled. All non-retention registers are reset to their default value when the IP is disabled. When the IP is disabled, the XIP accesses produce AHB-Lite bus errors. ‘1’: Enabled. Note: Before disabling the IP, SW should ensure that the IP is NOT busy (STATUS.BUSY is ‘0’), otherwise illegal interface transfers may occur. 0 (DISABLED): N/A 1 (ENABLED): N/A |